/*
 * Main.java
 *
 * Created on November 6, 2006, 8:32 PM
 *
 */

package biblioteka;

import java.util.*;
import java.io.*;


/**
 *
 * @author Tatjana Arechvo, 3 grupe
 */
public class Main {
    


    static void initializirovat_bazu_dannih(){
         for(kolicestvo_raznih_knig=0; kolicestvo_raznih_knig<5; kolicestvo_raznih_knig++){
            k[kolicestvo_raznih_knig] = new Kniga();
        }
        k[0].baza_dannih_knig(1, 10, "Java 2D Graphics", "Jonathan Knudsen", 5, 5);   
        k[1].baza_dannih_knig(2, 10, "Java After Hours", "Steven Hotzner", 2, 2);
        k[2].baza_dannih_knig(3, 10, "Exceptional C++", "Herb Sutter", 1, 1);
        k[3].baza_dannih_knig(4, 10, "JavaScript", "David Flanagan", 2, 2);
        k[4].baza_dannih_knig(5, 10, "Assembler", "David Brendli", 3, 3);
        
    } 
    
    static void initializirovat_rabocih(){
        for(int i=0; i<2; i++){
            bib[i] = new Bibliotekar();
        }
        bib[0].rabocij("Petras Petraitis", 123, 0);   
        bib[1].rabocij("Adminas", 321, 1);

    } 
    
    static void smena_juzera(){
        System.out.println("Iveskite savo koda:    -= 0 =-  bibliotekininkas/    -= 1 =-  adminas ");
        int i = Integer.parseInt(read_string());
        
        System.out.println(bib[i].get_imia()+"  -=# Iveskite savo slaptazodi #=-");
        int pas= Integer.parseInt(read_string());

        if (pas == bib[i].get_parol()){
            nomer_bibliotekaria = i;
            System.out.println(new Date());
            System.out.println("_ Laba diena, "+bib[i].get_imia());
        }else{
            System.out.println("Neteisingas slaptazodis, Good-Bye");
            System.exit(0);
        }
    }    
    
    static void sozdat_novogo_citatelia(){
        if(kolicestvo_citatelej ==100){
            System.out.println("\nBibliotekoje negali buti daugiau skaitytoju: "); 
        }else{ 
            System.out.println("\nIveskite naujo skaitytojo varda: ");  
            c[kolicestvo_citatelej] = new Citatel();
     
            String imia="";
            imia=read_string();
            c[kolicestvo_citatelej].novij_citatel(kolicestvo_citatelej, imia, 0);
            kolicestvo_citatelej++;
        }
    }
   
    static void peresmotret_vseh_citatelej(){
        String nazvanije_knigi="nera knygu";  
        for(int i=0; i<kolicestvo_citatelej; i++){
            if (c[i].get_nomer_knigi() !=0){
              nazvanije_knigi = k[c[i].get_nomer_knigi()-1].get_nazvanie();
            }else{
            nazvanije_knigi="nera knygu";
            }   
            System.out.println("Numeris: "+c[i].get_nomer_citatelia()+", Vardas: "+c[i].get_imia()+", knygos numeris: "+c[i].get_nomer_knigi()+", pavadinimas: "+nazvanije_knigi);

        }
    }
    
    static String read_string(){
        DataInputStream vvod =new DataInputStream(new BufferedInputStream(System.in));
        String temp="";
        try{
            temp = vvod.readLine();
        }catch (IOException e){
            e.printStackTrace();
       }
       return temp;
    }
    
    static void vziat_knigu(){
        System.out.println("\nIveskite skaitytojo numeri ");

         int a = Integer.parseInt(read_string());
         if(a<kolicestvo_citatelej){
             if (c[a].get_nomer_knigi() ==0){
                 System.out.println("\nIveskite knygos numeri ");
                 int n = Integer.parseInt(read_string());
                 if(n-1<kolicestvo_raznih_knig){
                     if(k[n-1].vziat_knigu()){
                        c[a].vziat_knigu(n);
                     }
                 }else{
                    System.out.println("Tokiu knygu bibliotekoje nera");
                 }
             }else {
                 System.out.println("Sitas skaitytojas jau turi knyga");
             } 
       }else{
             System.out.println("Tokio skaitytojo nera");
       }
    }
    
    static void otdat_knigu(){
         System.out.println("\nIveskite skaitytojo numeri ");
         int a = Integer.parseInt(read_string());
         if(a<kolicestvo_citatelej){
             int b = c[a].otdat_knigu();
             if (b!=0){
                 System.out.println("\nIvertinkite knyga [0..10]:  ");
                 int c = Integer.parseInt(read_string());
                 k[b-1].ocenit(c);
                 k[b-1].otdat_knigu();
             }else{
                System.out.println("Sitas skaitytojas knigos neturi");
             }
         }else{
         System.out.println("Tokio skaitytojo nera");
         }
    
    }
   
    static void meniu(){
         System.out.println("^^^^^^^^^^____________ BIBLIOTEKA __________ ^^^^^^^^^^");
         System.out.println("            1. Naujas skaitytojas;");  //+
         System.out.println("            2. Paimti knyga;");  //+
         System.out.println("            3. Grazinti knyga;"); //+
         System.out.println("            4. Sarasas knygu, kurios jau paimtos;"); //+
         System.out.println("            5. Sarasas knygu bibliotekoje;");//+
         System.out.println("            9. Skaitytoju sarasas;");//+
         System.out.println("            6. MENIU;");  //+
         System.out.println("            8. Pakeisti vartotoja;");
         if(bib[nomer_bibliotekaria].get_pravo_dostupa()!=0){
             System.out.println("            0. Ideti knyga i biblioteka;\n");
         }
         System.out.println("            7. Isejimas;\n");  //+
    }
    
    public static void spisok_vziatih_knig(){
        int a=0;
        System.out.println("Paimtos knygos: ");
        for(int i=0; i<kolicestvo_raznih_knig; i++){
            if(k[i].get_vsego_knig_dolzno_bit() != k[i].get_kolicestvo()){
                System.out.println((k[i].get_vsego_knig_dolzno_bit()-k[i].get_kolicestvo())+" knizki "+ k[i].get_nazvanie() );
                a++;
            }
        }
        if(a==0){
            System.out.println("Visos knygos bibliotekoje");
        }
    
    }
    public static void dobavit_knigu_v_biblioteku(){
        System.out.println("Iveskite knygos pavadinima: ");
        String nazvanije_knigi = read_string();
        System.out.println("Iveskite knygos autori: ");
        String avtor = read_string();
        System.out.println("Iveskite knygos bukle: ");
        int sostojanije = Integer.parseInt(read_string());
        System.out.println("Iveskite knygu kieki");
        int kolicestvo = Integer.parseInt(read_string());
        
        k[kolicestvo_raznih_knig] = new Kniga();
        k[kolicestvo_raznih_knig].baza_dannih_knig(kolicestvo_raznih_knig, sostojanije, nazvanije_knigi, avtor, kolicestvo, kolicestvo);
        kolicestvo_raznih_knig++;
    
    }
    
    public static void spisok_knig_v_biblioteke(){
        System.out.println("Knygos bibliotekoje: ");
        for(int i = 0; i<kolicestvo_raznih_knig; i++){
            System.out.println((i+1)+"-numeris "+k[i].get_nazvanie()+" turi buti: "+k[i].get_vsego_knig_dolzno_bit()+" yra: "+k[i].get_kolicestvo());
        }
    }
    


    public static void main(String[] args) {
        int a=0;
        String temp = "";
        kolicestvo_citatelej=0;

                
    
        initializirovat_bazu_dannih(); 
        initializirovat_rabocih();
        smena_juzera();
        meniu();
        
        System.out.println("Siuo metu bibliotekoje skirtingu knigu yra = "+kolicestvo_raznih_knig);
        
        DataInputStream vvod =new DataInputStream(new BufferedInputStream(System.in));
        

        for(int i=0; i>-1; i++){
            System.out.println("\n*********-= Ka darome? =-**********: ");   
            a = Integer.parseInt(read_string());
         
          
            switch (a){
                case 1: sozdat_novogo_citatelia(); break;
                case 2: vziat_knigu(); break;
                case 3: otdat_knigu(); break;
                case 4: spisok_vziatih_knig(); break;
                case 5: spisok_knig_v_biblioteke(); break;
                case 6: meniu(); break;
                case 8: smena_juzera(); break;
                case 9: peresmotret_vseh_citatelej(); break;
                case 7: System.out.println("Programa baigia darba");System.exit(0); break;
                case 0: if(bib[nomer_bibliotekaria].get_pravo_dostupa()!=0){dobavit_knigu_v_biblioteku();}else{System.out.println("Vi ne imejete pravo dostupa");} break;
                default: System.out.println("Meniu Klaida, pakartokite!"); 
            }   
        }       
    }
    static  Kniga [] k = new Kniga[10];
    static int kolicestvo_raznih_knig;
    static int kolicestvo_citatelej;
    static Citatel [] c = new Citatel[100];
    static Bibliotekar [] bib = new Bibliotekar[10];
    static int nomer_bibliotekaria;
}